//
//  NSString+ZUtilities.h
//  WeClubs
//
//  Created by Zed Link on 30/3/2017.
//  Copyright © 2017 Zed. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSString (ZUtilities)

// ========== 加密相关 ==========
/**
 16进制SHA1
 */
- (NSString *)zSHA1String;

/**
 2进制MD5表示
 */
- (NSString *)zMD5BiaryString;

/**
 16进制MD5表示
 */
- (NSString *)zMD5HexString;

// ========== 正则表达式相关 ==========

/**
 检测字符串是否为手机号码
 @return 是手机号返回YES, 否则返回NO
 */
- (BOOL)zCheckPhoneNumber;

/**
 返回Pattern所匹配的第一个结果在原字符串的位置
 */
- (NSRange)firstRangeWithPattern:(NSString *)pattern;

/**
 返回Pattern所匹配的第一个子字符串
 */
- (NSString *)firstSubstringWithPattern:(NSString *)pattern;

/**
 返回Pattern匹配的所有结果在原字符串的位置
 @return 包装了NSRange的NSValue数组, 没有匹配结果时返回nil
 */
- (NSArray <NSValue *> *)matchRangesWithPattern:(NSString *)pattern;

/**
 返回Pattern匹配的所有子字符串
 @return NSString数组, 没有匹配结果时返回nil
 */
- (NSArray <NSString *> *)matchSubstringsWithPattern:(NSString *)pattern;

/**
 判断字符串是否有表情符号
 */
+ (BOOL)zStringContainsEmoji:(NSString *)string;

/**
 判断是否是身份证号
 */
+ (BOOL)zJudgeIdentityStringValid:(NSString *)identityString;
@end
